import Bullet from "./Bullet";
/**
 * 游戏控制脚本。定义了几个dropBox，bullet，createBoxInterval等变量，能够在IDE显示及设置该变量
 * 更多类型定义，请参考官方文档
 */
export default class GameControl extends Laya.Script {
    /** @prop {name:dropBox,tips:"掉落容器预制体对象",type:Prefab}*/
    /** @prop {name:bullet,tips:"子弹预制体对象",type:Prefab}*/
    /** @prop {name:x,tips:"间隔多少毫秒创建一个下跌的容器",type:int,default:1000}*/
    constructor() { 
        super(); 
        //间隔多少毫秒创建一个下跌的容器
        this.x = 1;
        //开始时间
        this._time = Date.now();
        //是否已经开始游戏
        this._started = false;
    }
    onEnable() {
        //子弹和盒子所在的容器对象
        this._gameBox = this.owner.getChildByName("gameBox");
    }
    onStageClick(e) {
        //停止事件冒泡，提高性能，当然也可以不要
        e.stopPropagation();
        //舞台被点击后，使用对象池创建子弹
        if(this.x==2)
        {
            let flyer=Laya.Pool.getItemByCreateFun("bullet", this.bullet.create, this.bullet);
            flyer.pos(192, 788);//起始位置
            this._gameBox.addChild(flyer);
        }//第二次点击创建子弹 并将其加到页面上 第一次是进入
        this.x++;
    }

    /**开始游戏，通过激活本脚本方式开始游戏*/
    startGame() {
        if (!this._started) {
            this._started = true;
            this.enabled = true;
        }
    }

    /**结束游戏，通过非激活本脚本停止游戏 */
    stopGame() {
        this._started = false;
        this.enabled = false;
        //this.createBoxInterval = 1000;

        this._gameBox.removeChildren();
        this.x=1;
    }
}